package uniandes.cupi2.photoViewer.interfaz;

import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.border.EtchedBorder;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.ParseException;

import javax.swing.JTable;

import uniandes.cupi2.photoViewer.mundo.ListaAlbum;
import uniandes.cupi2.photoViewer.mundo.ListaFoto;

public class PanelBusquedas extends JPanel implements ActionListener 
{
	
	private final static String FOTOETIQUETA = "Foto por etiqueta";
	private final static String ALBUMETIQUETA = "Album por etiqueta";
	private final static String FOTOFECHA = "Foto por fecha";
	private final static String ALBUMFECHA = "Album por fecha";
	private final static String ALBUMNOMBREFOTO = "Album por nombre de foto";
	private final static String ALBUMETIQUETAFOTO = "Album por etiqueta de foto";
	private final static String ORDENAR_ALBUMES_ASCENDENTE = "Ordenar albumes ascendente";
	private final static String ORDENAR_ALBUMES_DESCENDENTE = "Ordenar albumes descendente";
	private final static String ORDENAR_FOTOS_ASCENDENTE ="Ordenar fotos ascendente";
	private final static String ORDENAR_FOTOS_DESCENDENTE = "Ordenar fotos descendente";
	
	private InterfazPhotoViewer principal;

	/**
	 * Create the panel.
	 */
	public PanelBusquedas(InterfazPhotoViewer ventana)
	{
		principal = ventana;
	
		setPreferredSize(new Dimension(237, 339));
		setSize(new Dimension(100, 250));
		setMinimumSize(new Dimension(100, 250));
		setMaximumSize(new Dimension(100, 250));
		setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Busquedas y Ordenamiento", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		
		JButton btnFotoPorEtiqueta = new JButton(FOTOETIQUETA);
		btnFotoPorEtiqueta.setActionCommand(FOTOETIQUETA);
		btnFotoPorEtiqueta.addActionListener(this);
		btnFotoPorEtiqueta.setPreferredSize(new Dimension(158, 35));
		add(btnFotoPorEtiqueta);
		
		JButton btnAlbumPorEtiqueta = new JButton(ALBUMETIQUETA);
		btnAlbumPorEtiqueta.setActionCommand(ALBUMETIQUETA);
		btnAlbumPorEtiqueta.addActionListener(this);
		btnAlbumPorEtiqueta.setPreferredSize(new Dimension(158, 35));
		add(btnAlbumPorEtiqueta);
		
		JButton btnFotoPorFecha = new JButton(FOTOFECHA);
		btnFotoPorFecha.setActionCommand(FOTOFECHA);
		btnFotoPorFecha.addActionListener(this);
		btnFotoPorFecha.setPreferredSize(new Dimension(158, 35));
		add(btnFotoPorFecha);
		
		JButton btnAlbumPorFecha = new JButton(ALBUMFECHA);
		btnAlbumPorFecha.setActionCommand(ALBUMFECHA);
		btnAlbumPorFecha.addActionListener(this);
		btnAlbumPorFecha.setPreferredSize(new Dimension(158, 35));
		add(btnAlbumPorFecha);
		
		JButton btnAlbumPorNombre = new JButton(ALBUMNOMBREFOTO);
		btnAlbumPorNombre.setActionCommand(ALBUMNOMBREFOTO);
		btnAlbumPorNombre.addActionListener(this);
		btnAlbumPorNombre.setPreferredSize(new Dimension(158, 35));
		btnAlbumPorNombre.setSize(new Dimension(150, 29));
		btnAlbumPorNombre.setMaximumSize(new Dimension(150, 29));
		btnAlbumPorNombre.setMinimumSize(new Dimension(150, 29));
		add(btnAlbumPorNombre);
		
		JButton btnAlbumPorEtiqueta_1 = new JButton(ALBUMETIQUETAFOTO);
		btnAlbumPorEtiqueta_1.setActionCommand(ALBUMETIQUETAFOTO);
		btnAlbumPorEtiqueta_1.addActionListener(this);
		btnAlbumPorEtiqueta_1.setPreferredSize(new Dimension(158, 35));
		add(btnAlbumPorEtiqueta_1);
		
		
		JButton btnOrdenarAlbumesAscendente = new JButton(ORDENAR_ALBUMES_ASCENDENTE);
		btnOrdenarAlbumesAscendente.setPreferredSize(new Dimension(158, 35));
		btnOrdenarAlbumesAscendente.setActionCommand(ORDENAR_ALBUMES_ASCENDENTE);
		btnOrdenarAlbumesAscendente.addActionListener(this);
		add(btnOrdenarAlbumesAscendente);
		
		JButton btnOrdenarAlbumesDescendente = new JButton(ORDENAR_ALBUMES_DESCENDENTE);
		btnOrdenarAlbumesDescendente.setPreferredSize(new Dimension(158, 35));
		btnOrdenarAlbumesDescendente.setActionCommand(ORDENAR_ALBUMES_DESCENDENTE);
		btnOrdenarAlbumesDescendente.addActionListener(this);
		add(btnOrdenarAlbumesDescendente);
		
		JButton btnOrdenarFotosAscendente = new JButton(ORDENAR_FOTOS_ASCENDENTE);
		btnOrdenarFotosAscendente.setPreferredSize(new Dimension(158, 35));
		btnOrdenarFotosAscendente.setActionCommand(ORDENAR_FOTOS_ASCENDENTE);
		btnOrdenarFotosAscendente.addActionListener(this);
		add(btnOrdenarFotosAscendente);
		
		JButton btnOrdenarFotosDescendente = new JButton(ORDENAR_FOTOS_DESCENDENTE);
		btnOrdenarFotosDescendente.setPreferredSize(new Dimension(158, 35));
		btnOrdenarFotosDescendente.setActionCommand(ORDENAR_FOTOS_DESCENDENTE);
		btnOrdenarFotosDescendente.addActionListener(this);
		add(btnOrdenarFotosDescendente);
		
	}
	
	
	public void actionPerformed(ActionEvent cursor)
	{
		String comando = cursor.getActionCommand();
		if(comando.equals(FOTOETIQUETA))
		{
			principal.abrirDialogoBuscarFotoPorEtiqueta();
		}
		else if(comando.equals(ALBUMETIQUETA))
		{
			principal.abrirDialogoBuscarAlbumPorEtiqueta();
		}
		else if(comando.equals(FOTOFECHA))
		{
			try {
				principal.abrirDialogoBuscarFotoPorFecha();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		else if(comando.equals(ALBUMFECHA))
		{
			try {
				principal.abrirDialogoBuscarAlbumPorFecha();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		else if(comando.equals(ALBUMNOMBREFOTO))
		{
			principal.abrirDialogoBuscarAlbumPorNombreDeFoto();
		}
		else if(comando.equals(ALBUMETIQUETAFOTO))
		{
			principal.abrirDialogoBuscarAlbumPorEtiquetaDeFoto();
		}
		else if(comando.equals(ORDENAR_ALBUMES_ASCENDENTE))
		{
			principal.ordenarAlbumAscendente();
		}
		else if(comando.equals(ORDENAR_ALBUMES_DESCENDENTE))
		{
			principal.ordenarAlbumDescendente();
		}
		else if(comando.equals(ORDENAR_FOTOS_ASCENDENTE))
		{
			principal.ordenarFotoAscendente();
		}
		else if(comando.equals(ORDENAR_FOTOS_DESCENDENTE))
		{
			principal.ordenarFotoDescendente();
		}
	}

}
